﻿#include "BRTree.h"
//#include "BRtreeM.h"
//template<class T>
//struct KeyofT
//{
//
//	T operator()(T x)
//	{
//		return x;
//	}
//};

template<class T1, class T2>
struct KeyofT
{

	T1 operator()(pair<T1,T2> x)
	{
		return x.first;
	}
};

//void test1()
//{
//	RBTree<int, int, KeyofT<int>>  t;
//	int a[] = { 10, 5, 15, 3, 7, 12, 17, 2, 4, 6 };
//	for (auto& x : a)
//	{
//		t.Insert(x);
//	}
//	auto it = t.begin();
//	/*while (it != t.end())
//	{
//		cout << *it++ << ' ';
//
//	}*/
//	//cout << t.IsBalanceTree() << endl;
//	for (auto& x : t)
//	{
//		cout << x << endl;
//	}
//}

int main()
{
	RBTree<string, pair<string,string>, KeyofT<string,string>>  t;
	t.Insert({ "left","左边" });
	t.Insert({ "right","右边" });
	t.Insert({ "forward","前" });
	t.Insert({ "back","后" });
	auto it = t.begin();
	while (it != t.end())
	{
		cout << it->first << ':'<<it->second <<endl;
		it++;
	}
	return 0;
}